package com.zz.ui_demo_wedgit;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.text.InputFilter;
import android.text.InputType;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;

public class EditTextActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edittext);
        EditText etDemo = findViewById(R.id.et_demo);
        etDemo.setTextColor(Color.CYAN);
        etDemo.setText("");
        etDemo.setHint("请输入您的名字");
        etDemo.setHintTextColor(Color.rgb(0,200,135));
        //通过颜色的字符串去设置背景颜色
        etDemo.setBackgroundColor(Color.parseColor("#ff00ab"));
        //设置可视宽度
        etDemo.setEms(5);
        //设置文本过滤器,限定文本输入框可输入的长度
        etDemo.setFilters(new InputFilter[]{
                new InputFilter.LengthFilter(10)
        });
        //密码
        EditText etPasswordDemo = findViewById(R.id.et_passwordDemo);
        Switch swPassword  = findViewById(R.id.sw_password);
        swPassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){//如果开关被选中，则将etPasswordDemo的输入类型设置为普通文本类型这意味着用户可以输入任何文本，不进行任何隐藏或加密。
                    etPasswordDemo.setInputType(InputType.TYPE_CLASS_TEXT);
                    buttonView.setText("隐藏密码");
                }
                else{//开关未被选中，则将etPasswordDemo的输入类型设置为密码文本类型这意味着用户输入的字符将被隐藏，以防止他人窥视。
                    etPasswordDemo.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
                    buttonView.setText("显示密码");
                }
            }
        });
        //回文
        TextView tvShow = findViewById(R.id.tv_show);
        tvShow.setText("");
        tvShow.setHint("显示内容");
        //将输入的内容记录到文本框中，回车后会显示
        etDemo.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                tvShow.setText(etDemo.getText());
                return false;
            }
        });
        //边输入边显示
        etDemo.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                //正在发生文本变化的方法
                tvShow.setText(s);
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }
}